package com.jindy.module.outgoingapproval.service;

import java.util.List;

import com.jindy.module.outgoingapproval.domain.OutgoingApprovalVO;
import com.jindy.module.outgoingapproval.domain.SyOutgoingApproval;

/**
 * 外出审批Service接口
 * 
 * @author jindy
 * @date 2023-05-12
 */
public interface ISyOutgoingApprovalService 
{
    /**
     * 查询外出审批
     * 
     * @param id 外出审批主键
     * @return 外出审批
     */
    public SyOutgoingApproval selectSyOutgoingApprovalById(Long id);

    /**
     * 查询外出审批列表
     * 
     * @param syOutgoingApproval 外出审批
     * @return 外出审批集合
     */
    public List<SyOutgoingApproval> selectSyOutgoingApprovalList(SyOutgoingApproval syOutgoingApproval);

    /**
     * 新增外出审批
     * 
     * @param syOutgoingApproval 外出审批
     * @return 结果
     */
    public int insertSyOutgoingApproval(SyOutgoingApproval syOutgoingApproval);

    /**
     * 修改外出审批
     * 
     * @param syOutgoingApproval 外出审批
     * @return 结果
     */
    public int updateSyOutgoingApproval(SyOutgoingApproval syOutgoingApproval);

    /**
     * 批量删除外出审批
     * 
     * @param ids 需要删除的外出审批主键集合
     * @return 结果
     */
    public int deleteSyOutgoingApprovalByIds(Long[] ids);

    /**
     * 删除外出审批信息
     * 
     * @param id 外出审批主键
     * @return 结果
     */
    public int deleteSyOutgoingApprovalById(Long id);

    /**
     * 提交申请
     * @param outgoingApproval
     */
    void submitApply(SyOutgoingApproval outgoingApproval) throws Exception;

    /**
     * 查询外出审批记录（含业务状态）
     * @param syOutgoingApproval
     * @return
     */
    List<OutgoingApprovalVO> selectSyOutGoingApprovalResult(SyOutgoingApproval syOutgoingApproval);
}
